from django.db import models

# Create your models here.
'''
1.模型类需要继承models.model
2.定义属性：
    id系统默认会生成
    属性名=models.类型(选项)
    属性名 对应 就是字段名 不要使用关键字 不要使用连续的下划线
    类型 MySQL的类型
    选项 是否有默认值 是否唯一 是否为null
        CharFiled 必须设置max_length
        verbose_name 主要是admin站点使用 
3.改变表的名称
    默认的标的名称是：子应用_类名 都是小写的
    修改表的名字

'''


class BookInfo(models.Model):
    name = models.CharField(max_length=10, unique=True)
    pub_date = models.DateField(null=True)
    readcount = models.IntegerField(default=0)
    commentcount = models.IntegerField(default=0)
    is_delete = models.BooleanField(default=False)

    def __str__(self):
        return self.name

    class Meta:
        db_table = 'bookinfo'  # 修改表的名字
        verbose_name = '书籍管理'  # 站点使用


class PeopleInfo(models.Model):
    # 定义一个有序字典
    GENDER_CHOICE = ((1, 'male'), (2, 'female'))
    name = models.CharField(max_length=10, unique=True)
    gender = models.SmallIntegerField(choices=GENDER_CHOICE, default=1)
    description = models.CharField(max_length=100, null=True)
    is_delete = models.BooleanField(default=False)

    def __str__(self):
        return self.name

    # 添加外键book_ic
    # 系统会自动的给外键就加 _id
    # 外键的级别操作
    '''
    主表 和 从表
    1   对 多
    书籍 对 人物
    主表的数据一旦删除，从表的数据也会被删除
        SET_NULL
        抛出异常，不许删除
        级联删除
    '''

    book = models.ForeignKey(BookInfo, on_delete=models.CASCADE)

    class Meta:
        db_table = 'peopleinfo'
        verbose_name = '人员信息'
